package com.thinkTank.oa.entity;

import java.io.Serializable;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 需求实体类
 * 
 * @author 董力 2018-08-13
 */
public class Demand implements Serializable {

    private static final long serialVersionUID = 1L;

    /** uuid */
    private String pid;
    /** 需求id */
    private Integer demandNumber;
    /** 需求来源 */
    @NotNull(message = "需求来源不能为空")
    private Integer source;
    /** 来源备注 */
    @NotEmpty(message = "来源备注不能为空")
    private String sourceRemark;
    /** 需求类型 */
    @NotEmpty(message = "需求类型不能为空")
    private String demandType;
    /** 外键/收录人 */
    private String collectPersonId;
    /** 录入时间 */
    private String entryTime;
    /** 所属领域 */
    @NotEmpty(message = "所属领域不能为空")
    private String researchField;
    /**
     * 0国内 1国外
     */
    @NotNull(message = "国籍不能为空")
    private Integer domesticOrForeign;
    /** 所在地区 */
    @NotEmpty(message = "地区不能为空")
    private String area;
    /** 需求名称 */
    @NotEmpty(message = "需求名称不能为空")
    private String demandName;
    /**
     * 需求状态 1未联系 2联系信息错误 3已联系已失效 4已联系无意向 5有意向对接中 6有意向已对接 7对接完成
     */
    @NotNull(message = "需求状态非空")
    private Integer demandStatus;
    /** 需求内容 */
    @NotEmpty(message = "需求内容不能为空")
    private String demandContent;
    /** 需求联系人 */
    private String demandContactId;
    /** 对接负责人 */
    private String buttPersonId;
    /** 需求单位 */
    private String demandUnit;
    /** 备注1 */
    private String remark1;
    /** 备注2 */
    private String remark2;
    /** 备注3 */
    private String remark3;
    /** 备注4 */
    private String remark4;
    /** 备注5 */
    private String remark5;

    // 用于显示联系人
    private Person per;
    // 显示状态字符串
    private String demandStatusWorth;
    private String sourceWorth;
    private String areaWorth;
    private String demandNumberStr;
    private String demandContactName;
    private String customerId;
    // 不用于数据库操作
    private Integer demandTypeNumber;
    // 不用于数据库操作
    private Integer researchFieldNumber;
    // 项目需求的一个十进制数字，保存到数据库就保存这个数字
    private Integer demandTypeInteger;
    // 同上
    private Integer researchFieldInteger;
    private String updateTime;
    
    /**1表示搜索框里面是联系人，2表示单位*/
    private Integer tag = -1;

    public Demand() {
    }

    public Demand(String pid, Integer demandNumber, @NotEmpty(message = "需求名称不能为空") String demandName) {
        this.pid = pid;
        this.demandNumber = demandNumber;
        this.demandName = demandName;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public Integer getDemandNumber() {
        return demandNumber;
    }

    public void setDemandNumber(Integer demandNumber) {
        this.demandNumber = demandNumber;
    }

    public Integer getSource() {
        return source;
    }

    public void setSource(Integer source) {
        this.source = source;
    }

    public String getSourceRemark() {
        return sourceRemark;
    }

    public void setSourceRemark(String sourceRemark) {
        this.sourceRemark = sourceRemark;
    }

    public String getDemandType() {
        return demandType;
    }

    public void setDemandType(String demandType) {
        this.demandType = demandType;
    }

    public String getCollectPersonId() {
        return collectPersonId;
    }

    public void setCollectPersonId(String collectPersonId) {
        this.collectPersonId = collectPersonId;
    }

    public String getEntryTime() {
        return entryTime;
    }

    public void setEntryTime(String entryTime) {
        this.entryTime = entryTime;
    }

    public String getResearchField() {
        return researchField;
    }

    public void setResearchField(String researchField) {
        this.researchField = researchField;
    }

    public Integer getDomesticOrForeign() {
        return domesticOrForeign;
    }

    public void setDomesticOrForeign(Integer domesticOrForeign) {
        this.domesticOrForeign = domesticOrForeign;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getDemandName() {
        return demandName;
    }

    public void setDemandName(String demandName) {
        this.demandName = demandName;
    }

    public Integer getDemandStatus() {
        return demandStatus;
    }

    public void setDemandStatus(Integer demandStatus) {
        this.demandStatus = demandStatus;
    }

    public String getDemandContent() {
        return demandContent;
    }

    public void setDemandContent(String demandContent) {
        this.demandContent = demandContent;
    }

    public String getDemandContactId() {
        return demandContactId;
    }

    public void setDemandContactId(String demandContactId) {
        this.demandContactId = demandContactId;
    }

    public String getButtPersonId() {
        return buttPersonId;
    }

    public void setButtPersonId(String buttPersonId) {
        this.buttPersonId = buttPersonId;
    }

    public String getRemark1() {
        return remark1;
    }

    public void setRemark1(String remark1) {
        this.remark1 = remark1;
    }

    public String getRemark2() {
        return remark2;
    }

    public void setRemark2(String remark2) {
        this.remark2 = remark2;
    }

    public String getRemark3() {
        return remark3;
    }

    public void setRemark3(String remark3) {
        this.remark3 = remark3;
    }

    public String getRemark4() {
        return remark4;
    }

    public void setRemark4(String remark4) {
        this.remark4 = remark4;
    }

    public String getRemark5() {
        return remark5;
    }

    public void setRemark5(String remark5) {
        this.remark5 = remark5;
    }

    public Person getPer() {
        return per;
    }

    public void setPer(Person per) {
        this.per = per;
    }

    public String getDemandStatusWorth() {
        return demandStatusWorth;
    }

    public void setDemandStatusWorth(String demandStatusWorth) {
        this.demandStatusWorth = demandStatusWorth;
    }

    public Integer getDemandTypeNumber() {
        return demandTypeNumber;
    }

    public void setDemandTypeNumber(Integer demandTypeNumber) {
        this.demandTypeNumber = demandTypeNumber;
    }

    public Integer getResearchFieldNumber() {
        return researchFieldNumber;
    }

    public void setResearchFieldNumber(Integer researchFieldNumber) {
        this.researchFieldNumber = researchFieldNumber;
    }

    public Integer getDemandTypeInteger() {
        return demandTypeInteger;
    }

    public void setDemandTypeInteger(Integer demandTypeInteger) {
        this.demandTypeInteger = demandTypeInteger;
    }

    public Integer getResearchFieldInteger() {
        return researchFieldInteger;
    }

    public void setResearchFieldInteger(Integer researchFieldInteger) {
        this.researchFieldInteger = researchFieldInteger;
    }

    public String getSourceWorth() {
        return sourceWorth;
    }

    public void setSourceWorth(String sourceWorth) {
        this.sourceWorth = sourceWorth;
    }

    public String getAreaWorth() {
        return areaWorth;
    }

    public void setAreaWorth(String areaWorth) {
        this.areaWorth = areaWorth;
    }

	public String getDemandNumberStr() {
		return demandNumberStr;
	}

	public void setDemandNumberStr(String demandNumberStr) {
		this.demandNumberStr = demandNumberStr;
	}

	public String getDemandContactName() {
		return demandContactName;
	}

	public void setDemandContactName(String demandContactName) {
		this.demandContactName = demandContactName;
	}

	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}

	public String getDemandUnit() {
		return demandUnit;
	}

	public void setDemandUnit(String demandUnit) {
		this.demandUnit = demandUnit;
	}

	public String getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(String updateTime) {
		this.updateTime = updateTime;
	}

	public Integer getTag() {
		return tag;
	}

	public void setTag(Integer tag) {
		this.tag = tag;
	}


}
